package com.ynet.middleground.user.bean;

import com.ynet.core.common.BaseReqObj;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;
import java.util.Map;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

/**
 * @program: 2019-10-12_userCenter
 * @description: 用户信息修请求对象
 * @author: DaiGaoLe
 * @create: 2019-10-21 20:03
 **/
@Data
@ApiModel(value = "用户信息修请求对象", description = "用户信息修请求对象")
public class ChangeUserInfoReq extends BaseReqObj {

    private static final long serialVersionUID = 8683801059332050675L;
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", notes = "用户id", dataType = "Integer", required = true)
    @NotNull(message = "用户id不能为空")
    private Integer userId;

    /**
     * 所属企业id
     */
    @ApiModelProperty(value = "所属企业id(即企业客户的userId,修改企业员工数据时必填)", notes = "所属企业id(即企业客户的userId,修改企业员工数据时必填)", dataType = "Integer")
    private Integer enterpriseId;

    
    /**
     * 联系电话
     */
    @ApiModelProperty(value = "联系电话", notes = "联系电话", dataType = "String")
    private String telephone;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称", notes = "用户名称", dataType = "String")
    private String userName;

    /**
     * 证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证
     */
    @ApiModelProperty(value = "证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证", notes = "证件种类,00-统一社会信用代码,01-组织机构代码证,营业执照,税务登记证,04-身份证", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 2, max = 2, message = "长度为2")
    private String papersType;

    /**
     * 证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证
     */
    @ApiModelProperty(value = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证", notes = "证件编号,当证件种类为00时该字段为统一社会信用代码,01时该字段为组织机构代码,04时为身份证", dataType = "String")
    private String papersNo;
    
    /**
     * 营业执照编号
     */
    @ApiModelProperty(value = "营业执照编号", notes = "营业执照编号", dataType = "String")
    private String bussinessLicenseNo;

    /**
     * 税务登记证编号
     */
    @ApiModelProperty(value = "税务登记证编号", notes = "税务登记证编号", dataType = "String")
    private String taxRegistrationNo;
    
    /**
     * 开户行行号
     */
    @ApiModelProperty(value = "开户行行号", notes = "开户行行号", dataType = "String")
    private String openBankNo;

    /**
     * 经营地址(或者是家庭住址)
     */
    @ApiModelProperty(value = "经营地址(或者是家庭住址)", notes = "经营地址(或者是家庭住址)", dataType = "String")
    private String userAddress;

    /**
     * 状态,0-用户注册成功(游客状态)，6-用户正常状态，通过了用户认证流程
     */
    @ApiModelProperty(value = "状态,0-用户注册成功(游客状态)，6-用户正常状态，通过了用户认证流程", notes = "状态,0-用户注册成功(游客状态)，6-用户正常状态，通过了用户认证流程", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 1, max = 1, message = "长度为1")
    private String state;

    /*  userBaseInformation end */

    /**@ApiModelProperty(value = "企业用户信息", notes = "企业用户信息")
    private ChangeUserInfoEnterpriseBasicInfo changeUserInfoEnterpriseBasicInfo;
     */
    @ApiModelProperty(value = "企业员工用户信息", notes = "企业员工用户信息")
    private ChangeUserInfoEnterpriseUserInfo changeUserInfoEnterpriseUserInfo;

    @ApiModelProperty(value = "自然人用户信息", notes = "自然人用户信息")
    private ChangeUserInfoNaturalPersonBase changeUserInfoNaturalPersonBase;

    @ApiModelProperty(value = "业态公司id", notes = "业态公司id")
    private Integer formatId;
}
